package be.novelfaces.component.properties;

import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.Description;
import org.richfaces.cdk.annotations.EventName;

public interface MouseEventProperties {

	@Attribute(description = @Description(value = "Script to be run on a mouse click.", //
	displayName = "onclick"), //
	events = @EventName("click"))
	String getOnclick();

	@Attribute(description = @Description(value = "Script to be run on a mouse double-click.", //
	displayName = "ondblclick"), //
	events = @EventName("dblclick"))
	String getOndblclick();

	@Attribute(description = @Description(value = "Script to be run when an element is dragged.", //
	displayName = "ondrag"), //
	events = @EventName("drag"))
	String getOndrag();

	@Attribute(description = @Description(value = "Script to be run at the end of a drag operation.", //
	displayName = "ondragend"), //
	events = @EventName("dragend"))
	String getOndragend();

	@Attribute(description = @Description(value = "Script to be run when an element has been dragged to a valid drop target.", //
	displayName = "ondragenter"), //
	events = @EventName("dragenter"))
	String getOndragenter();

	@Attribute(description = @Description(value = "Script to be run when an element leaves a valid drop target.", //
	displayName = "ondragleave"), //
	events = @EventName("dragleave"))
	String getOndragleave();

	@Attribute(description = @Description(value = "Script to be run when an element is being dragged over a valid drop target.", //
	displayName = "ondragover"), //
	events = @EventName("dragover"))
	String getOndragover();

	@Attribute(description = @Description(value = "Script to be run at the start of a drag operation.", //
	displayName = "ondragstart"), //
	events = @EventName("dragstart"))
	String getOndragstart();

	@Attribute(description = @Description(value = "Script to be run when dragged element is being dropped.", //
	displayName = "ondrop"), //
	events = @EventName("drop"))
	String getOndrop();

	@Attribute(description = @Description(value = "Script to be run when a mouse button is pressed.", //
	displayName = "onmousedown"), //
	events = @EventName("mousedown"))
	String getOnmousedown();

	@Attribute(description = @Description(value = "Script to be run when the mouse pointer moves.", //
	displayName = "onmousemove"), //
	events = @EventName("mousemove"))
	String getOnmousemove();

	@Attribute(description = @Description(value = "Script to be run when the mouse pointer moves out of an element.", //
	displayName = "onmouseout"), //
	events = @EventName("mouseout"))
	String getOnmouseout();

	@Attribute(description = @Description(value = "Script to be run when the mouse pointer moves over an element.", //
	displayName = "onmouseover"), //
	events = @EventName("mouseover"))
	String getOnmouseover();

	@Attribute(description = @Description(value = "Script to be run when the mouse pointer moves.", //
	displayName = "onmouseup"), //
	events = @EventName("mouseup"))
	String getOnmouseup();

	@Attribute(description = @Description(value = "Script to be run when the mouse wheel is being rotated.", //
	displayName = "onmousewheel"), //
	events = @EventName("mousewheel"))
	String getOnmousewheel();

	@Attribute(description = @Description(value = "Script to be run when an element's scrollbar is being scrolled.", //
	displayName = "onscroll"), //
	events = @EventName("scroll"))
	String getOnscroll();

}
